// Obiekty liczbowe

#import <Foundation/Foundation.h>

int main (int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSNumber          *myNumber, *floatNumber, *intNumber;
    NSInteger          myInt;

    // Warto cakowitoliczbowa

    intNumber = [NSNumber numberWithInteger: 100];
    myInt = [intNumber integerValue];
    NSLog (@"%li", (long) myInt);

    // Warto duga

    myNumber = [NSNumber numberWithLong: 0xabcdef];
    NSLog (@"%lx", [myNumber longValue]);

    // Warto znakowa

    myNumber = [NSNumber numberWithChar: 'X'];
    NSLog (@"%c", [myNumber charValue]);

    // Warto zmiennoprzecinkowa

    floatNumber = [NSNumber numberWithFloat: 100.00];
    NSLog (@"%g", [floatNumber floatValue]);

    // double  

    myNumber = [NSNumber numberWithDouble: 12345e+15];
    NSLog (@"%lg", [myNumber doubleValue]);

    // Niepoprawny sposb dostpu

    NSLog (@"%li", (long) [myNumber integerValue]);

    // Porwnanie dwch liczb

    if ([intNumber isEqualToNumber: floatNumber] == YES)
        NSLog (@"Liczby s rwne ");
    else
        NSLog (@"Liczby nie s rwne ");

    // Sprawdzenie, czy liczba jest <, == lub > od drugiej liczby

    if ([intNumber compare: myNumber] == NSOrderedAscending)
        NSLog (@"Pierwsza liczba jest mniejsza od drugiej ");

    [pool drain];
    return 0;
}